1373F - Network Coverage - CodeForces Solution


binary search constructive algorithms data structures greedy *2400

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;

const int N = 1000100, mod = 998244353;

void solve(){
    int n;
    cin >> n;
    vector <int> a(n), b(n);
    for(int i = 0; i < n; ++i)
        cin >> a[i];
    for(int i = 0; i < n; ++i)
        cin >> b[i];
    long long mn = 0;
    long long cur = 0;
    for(int i = 0; i < n + n; ++i){
        cur += a[i % n];
        cur -= b[(i - 1 + n) % n];
        if(cur - mn - b[i % n] > 0){
            //cout << mn << " " << cur << " " << i << endl;
            cout << "NO\n";
            return;
        }
        mn = min(mn, cur);
    }
    if(cur > 0)
        cout << "NO\n";
    else cout << "YES\n";
}

int main(){
	cin.tie(0);
	cout.tie(0);
	ios_base::sync_with_stdio(NULL);

	int T;
	cin >> T;
	//T = 1;
	while(T--)
		solve();

	return 0;
}


Comments

Submit
0 Comments
More Questions

1399A - Remove Smallest
208A - Dubstep
1581A - CQXYM Count Permutations
337A - Puzzles
495A - Digital Counter
796A - Buying A House
67A - Partial Teacher
116A - Tram
1472B - Fair Division
1281C - Cut and Paste
141A - Amusing Joke
112A - Petya and Strings
677A - Vanya and Fence
1621A - Stable Arrangement of Rooks
472A - Design Tutorial Learn from Math
1368A - C+=
450A - Jzzhu and Children
546A - Soldier and Bananas
32B - Borze
1651B - Prove Him Wrong
381A - Sereja and Dima
41A - Translation
1559A - Mocha and Math
832A - Sasha and Sticks
292B - Network Topology
1339A - Filling Diamonds
910A - The Way to Home
617A - Elephant
48A - Rock-paper-scissors
294A - Shaass and Oskols